Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / tests / backend / test_battery_usage_estimate.py

Displaying Raw • Download


tests/backend/test_battery_usage_estimate.py c0b0ddffd735a0d007c1be9a5e8563ec42fdafc0 (c0b0ddff) Text, 2.32 KB

T8b949e# SPDX-License-Identifier: 0BSD

Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787battery_usage_estimate Tff7b72import Tb4b4b4(
Te6edf3BatteryUsageTrackerTb4b4b4,
Te6edf3drain_intensityTb4b4b4,
Te6edf3estimate_battery_usageTb4b4b4,
Tb4b4b4)


Tff7b72def Td2a8fftest_estimate_scales_with_cpu_timeTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3idle Tff7b72= Te6edf3estimate_battery_usageTb4b4b4(
Te6edf3cpu_time_secondsTff7b72=T79c0ff6.0Tb4b4b4,
Te6edf3uptime_secondsTff7b72=T79c0ff600.0Tb4b4b4,
Te6edf3cpu_countTff7b72=T79c0ff4Tb4b4b4,
Tb4b4b4)
Tff7b72assert Te6edf3idle Tff7b72is Tff7b72not Tff7b72None
Tff7b72assert Te6edf3idleTb4b4b4[Ta5d6ff"Ta5d6ffavg_cpu_percentTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff1.0
Tff7b72assert Te6edf3idleTb4b4b4[Ta5d6ff"Ta5d6ffmachine_share_percentTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff0.2
Tff7b72assert Te6edf3idleTb4b4b4[Ta5d6ff"Ta5d6ffestimated_percent_per_hourTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff0.1
Tff7b72assert Te6edf3idleTb4b4b4[Ta5d6ff"Ta5d6ffintensityTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6fflowTa5d6ff"
Tff7b72assert Te6edf3idleTb4b4b4[Ta5d6ff"Ta5d6ffconfidenceTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffestimateTa5d6ff"
Tff7b72assert Te6edf3idleTb4b4b4[Ta5d6ff"Ta5d6ffmethodTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffcpu_timeTa5d6ff"

Te6edf3busy Tff7b72= Te6edf3estimate_battery_usageTb4b4b4(
Te6edf3cpu_time_secondsTff7b72=T79c0ff300.0Tb4b4b4,
Te6edf3uptime_secondsTff7b72=T79c0ff600.0Tb4b4b4,
Te6edf3cpu_countTff7b72=T79c0ff4Tb4b4b4,
Tb4b4b4)
Tff7b72assert Te6edf3busy Tff7b72is Tff7b72not Tff7b72None
Tff7b72assert Te6edf3busyTb4b4b4[Ta5d6ff"Ta5d6ffavg_cpu_percentTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff50.0
Tff7b72assert Te6edf3busyTb4b4b4[Ta5d6ff"Ta5d6ffestimated_percent_per_hourTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff5.0
Tff7b72assert Te6edf3busyTb4b4b4[Ta5d6ff"Ta5d6ffintensityTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffhighTa5d6ff"


Tff7b72def Td2a8fftest_estimate_warms_up_before_rateTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3early Tff7b72= Te6edf3estimate_battery_usageTb4b4b4(
Te6edf3cpu_time_secondsTff7b72=T79c0ff1.0Tb4b4b4,
Te6edf3uptime_secondsTff7b72=T79c0ff10.0Tb4b4b4,
Te6edf3cpu_countTff7b72=T79c0ff2Tb4b4b4,
Tb4b4b4)
Tff7b72assert Te6edf3early Tff7b72is Tff7b72not Tff7b72None
Tff7b72assert Te6edf3earlyTb4b4b4[Ta5d6ff"Ta5d6ffestimated_percent_per_hourTa5d6ff"Tb4b4b4] Tff7b72is Tff7b72None
Tff7b72assert Te6edf3earlyTb4b4b4[Ta5d6ff"Ta5d6ffconfidenceTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffwarming_upTa5d6ff"
Tff7b72assert Te6edf3earlyTb4b4b4[Ta5d6ff"Ta5d6ffintensityTa5d6ff"Tb4b4b4] Tff7b72is Tff7b72None


Tff7b72def Td2a8fftest_estimate_rejects_bad_inputsTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72assert Te6edf3estimate_battery_usageTb4b4b4(Te6edf3cpu_time_secondsTff7b72=Tff7b72NoneTb4b4b4, Te6edf3uptime_secondsTff7b72=T79c0ff10Tb4b4b4) Tff7b72is Tff7b72None
Tff7b72assert Te6edf3estimate_battery_usageTb4b4b4(Te6edf3cpu_time_secondsTff7b72=Tff7b72-T79c0ff1Tb4b4b4, Te6edf3uptime_secondsTff7b72=T79c0ff10Tb4b4b4) Tff7b72is Tff7b72None
Tff7b72assert Te6edf3estimate_battery_usageTb4b4b4(Te6edf3cpu_time_secondsTff7b72=T79c0ff1Tb4b4b4, Te6edf3uptime_secondsTff7b72=T79c0ff0Tb4b4b4) Tff7b72is Tff7b72None


Tff7b72def Td2a8fftest_drain_intensity_bucketsTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72assert Te6edf3drain_intensityTb4b4b4(T79c0ff0.2Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6fflowTa5d6ff"
Tff7b72assert Te6edf3drain_intensityTb4b4b4(T79c0ff1.0Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffmoderateTa5d6ff"
Tff7b72assert Te6edf3drain_intensityTb4b4b4(T79c0ff3.0Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffhighTa5d6ff"
Tff7b72assert Te6edf3drain_intensityTb4b4b4(T79c0ff9.0Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffvery_highTa5d6ff"
Tff7b72assert Te6edf3drain_intensityTb4b4b4(Tff7b72NoneTb4b4b4) Tff7b72is Tff7b72None


Tff7b72def Td2a8fftest_tracker_snapshot_from_fake_processTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72class T56d364_TimesTb4b4b4:
Te6edf3user Tff7b72= T79c0ff12.0
Te6edf3system Tff7b72= T79c0ff3.0

Tff7b72class T56d364_ProcTb4b4b4:
Tff7b72def Td2a8ffcpu_timesTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3_TimesTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffcreate_timeTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72import T7ee787time

Tff7b72return Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4) Tff7b72- T79c0ff120.0

Te6edf3tracker Tff7b72= Te6edf3BatteryUsageTrackerTb4b4b4(Tb4b4b4)
Te6edf3snap Tff7b72= Te6edf3trackerTff7b72.Td2a8ffsnapshotTb4b4b4(Te6edf3_ProcTb4b4b4(Tb4b4b4)Tb4b4b4)
Tff7b72assert Te6edf3snap Tff7b72is Tff7b72not Tff7b72None
Tff7b72assert Te6edf3snapTb4b4b4[Ta5d6ff"Ta5d6ffcpu_time_secondsTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff15.0
Tff7b72assert Te6edf3snapTb4b4b4[Ta5d6ff"Ta5d6ffuptime_secondsTa5d6ff"Tb4b4b4] Tff7b72>Tff7b72= T79c0ff119.0
Tff7b72assert Te6edf3snapTb4b4b4[Ta5d6ff"Ta5d6ffestimated_percent_per_hourTa5d6ff"Tb4b4b4] Tff7b72is Tff7b72not Tff7b72None


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────